package com.yugao.fintech.antelope.auth.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.yugao.fintech.antelope.auth.model.entity.ExtLdpConnect;
import com.yugao.fintech.antelope.auth.model.rqrs.ldp.ExtLdpConnectResp;
import com.yugao.fintech.antelope.auth.model.rqrs.ldp.ExtLdpConnectSaveReq;
import com.yugao.fintech.antelope.auth.model.rqrs.ldp.ExtLdpConnectUpdateReq;
import com.yugao.fintech.antelope.base.model.module.auth.GrantTypeEnum;

import java.util.List;

/**
 * 身份源连接模板
 */
public interface ExtLdpConnectService extends IService<ExtLdpConnect> {
    List<ExtLdpConnectResp> listLdpConnect(Long ldpId);

    /**
     * 保存 身份源连接模板
     *
     * @param req 新增的记录
     * @return 是否保存成功
     */
    boolean saveLdpConnect(ExtLdpConnectSaveReq req);

    /**
     * 更新 身份源连接模板
     *
     * @param req 修改的记录
     * @return 是否更新成功
     */
    boolean updateLdpConnect(ExtLdpConnectUpdateReq req);

    /**
     * 删除 身份源连接模板
     *
     * @param id 主键
     * @return 是否删除成功
     */
    boolean deleteLdpConnect(Long id);

    ExtLdpConnect getByGrantType(GrantTypeEnum grantType);

    /**
     * 通过客户端id获取外部身份源连接
     *
     * @param clientId 客户端id
     */
    List<ExtLdpConnectResp> listConnectByClientId(String clientId);
}
